An application program on a wireless terminal (e.g., a wireless phone, a smart phone, a cellular phone, a PDA, etc.) includes executable codes and may include one or more other necessary files such as a configuration file or a property file. An example of the executable codes is an application program. All these files generally reside in the wireless terminal. When it is necessary to fix some issues in the application program or new features and/or functionalities of the application program need to be added, the executable codes of the application program, along with associated supporting files, have to be updated. In other words, it becomes necessary to update the application program.
A large mobile service provider or carrier sells communication service to millions of customers. As those customers own different makes and models of wireless terminals, it will be a big challenge to update an application program commonly utilized by all these wireless terminals. Examples of the problems are (1) how to inform these millions of customers that updating the application program is necessary, (2) how to let the customers update the application program, and (3) how to deliver the updated application program to all these wireless terminals without imposing an excessive traffic load on the wireless network. The details of these problems will be described below.
When a customer purchases a wireless terminal and starts using it, the customer generally considers that everything in the wireless terminal would work perfectly well for the whole life of the wireless terminal. Later, when it becomes necessary to update an application program on the wireless terminal, the customer is notified via postal mail, email or short messaging service (SMS) to update the affected application program. However, not all customers pay attention to such notifications. Some of the customers may feel annoyed by receiving such notifications. This is because the customer thinks that their wireless terminals and the application program must be working properly since they have not faced any problems with the application program and/or the wireless terminals. Accordingly, the customers do not consider that updating of the application program is necessary.
However, updating the application program may be critical and urgent, for example, because the application program contains software bugs, viruses or fraudulent codes which could cause serious security flaws or major privacy concerns. A defective application program may be incapable of doing intended jobs properly on the wireless terminal. Even in such an urgent case, some customers still may not update the application program since they utilize only phone features of the wireless terminal, not affected by the defective application program.
In addition, those who realize the need for updating the application program may still find it difficult and time consuming to update the application program by themselves. Not many customers, however, try to contact a customer support center to inquire how to update the application program and to get support by representatives of the customer support center.
Thus, many wireless terminals in use continue to carry the old version of the application program or the defective application program.
Even if an appropriate notification of updating the application program is made to the customers, and the customers decide to update the application program, delivering an updated application program to all wireless terminals brings up the next challenge.
For example, it is not practically possible to correctly count how many customers would initiate an updating process at a specific time. Knowing the number of customers (i.e., wireless terminals) who initiate the updating process is important because when several thousand customers try to download the updated application program concurrently, it could easily cause traffic problems in the network and/or may bring down even up-to-date servers providing the updated application program.
When such problems occur at the time that the customers try to update the application program, the customers would have to try multiple times to complete the download; and some of the customers may stop updating of the application program without properly completing the download. As a result, the overall customer experience would suffer negatively. In addition, increases in the number of customer of wireless terminals increase the potential for large number of customers to fail to update the program on their terminals. Accordingly, updating of an application program on millions of wireless terminals via the network is of the great concerns. Accordingly, there is a need to easily and properly update an application program on wireless terminals in a controlled manner to reduce or avoid problems like those the mentioned above.